【コマンドライン】ディレクトリ(フォルダ)・ファイルの移動・名前変更 [ mv ]

【コマンドライン】ディレクトリ(フォルダ)・ファイルの移動・名前変更 [ mv ]

コマンドラインでディレクトリ・ファイルの移動や名前を変更するmvコマンドについて解説します。

検証環境

mvコマンド

mvコマンドは“ディレクトリ・ファイルの移動や名前の変更を行うコマンド”です。

基本書式

$ mv [オプション] [対象パス] [移動先パス]

オプション

主なオプションは次の通りです。

オプション 内容
-i 移動先に同名のファイルが存在する場合、上書きするか確認する
-n 移動先に同名のファイルが存在する場合、上書きせずに終了する

引数

対象パス

対象パスは移動及び名前変更するディレクトリやファイルのパスです。

移動先パス

移動先パスは移動先のパスです。

サンプル

ファイル

ファイルの移動

$ ls -l
-rw-rw-r-- 1 hacker staff    0  8月 21 11:27 memoA.txt
drwxrwxr-x 2 hacker staff 4096  8月 21 11:32 sample
$ ls -l sample
___ih_hl_start
$ mv memoA.txt sample/memoA.txt
___ih_hl_end
$ ls -l
drwxrwxr-x 2 hacker staff 4096  8月 21 11:34 sample
$ ls -l sample
-rw-rw-r-- 1 hacker staff  0  8月 21 11:27 memoA.txt

カレントディレクトリのmemo.txtsampleディレクトリに移動しました。

また、移動先パスのファイル名を省略した場合、同名で移動します。

$ ls -l
-rw-rw-r-- 1 hacker staff    0  8月 21 11:27 memoA.txt
drwxrwxr-x 2 hacker staff 4096  8月 21 11:32 sample
$ ls -l sample
___ih_hl_start
$ mv memoA.txt sample
___ih_hl_end
$ ls -l
drwxrwxr-x 2 hacker staff 4096  8月 21 11:34 sample
$ ls -l sample
-rw-rw-r-- 1 hacker staff  0  8月 21 11:27 memoA.txt

ファイル名の変更

移動先パスに別名を指定し、ファイル名を変更できます。

$ ls -l
-rw-rw-r-- 1 hacker staff    0  8月 21 11:27 memoA.txt
___ih_hl_start
$ mv memoA.txt memoT.txt
___ih_hl_end
$ ls -l
-rw-rw-r-- 1 hacker staff    0  8月 21 11:27 memoT.txt

ファイルの上書き

移動先に同名ファイルが存在する場合、上書きして移動します。

$ cat memoX.txt 
Hello World!
$ cat sample/memoX.txt 
Good Morning!
___ih_hl_start
$ mv memoX.txt sample
___ih_hl_end
$ cat sample/memoX.txt 
Hello World!

-iオプションや-nオプションで同名ファイルが存在する場合の処理を変更できます。

$ cat memoX.txt 
Hello World!
$ cat sample/memoX.txt 
Good Morning!
___ih_hl_start
$ mv -i memoX.txt sample
___ih_hl_end
mv: `sample/memoX.txt' を上書きしますか? n
$ ls -l
-rw-rw-r-- 1 hacker staff   13  8月 21 11:32 memoX.txt
drwxrwxr-x 2 hacker staff 4096  8月 21 11:50 sample
$ cat sample/memoX.txt 
Good Morning!

ディレクトリ

ディレクトリの移動

$ ls -l
drwxrwxr-x 2 hacker staff 4096  8月 21 11:50 sample
drwxrwxr-x 2 hacker staff 4096  8月 21 12:06 test
$ ls -l test
___ih_hl_start
$ mv test sample/test
___ih_hl_end
$ ls -l
drwxrwxr-x 3 hacker staff 4096  8月 21 12:06 sample
$ ls -l sample
drwxrwxr-x 2 hacker staff 4096  8月 21 11:50 test

カレントディレクトリのtestsampleディレクトリに移動しました。

また、移動先パスのディレクトリ名を省略した場合、同名で移動します。

$ ls -l
drwxrwxr-x 2 hacker staff 4096  8月 21 11:50 sample
drwxrwxr-x 2 hacker staff 4096  8月 21 12:06 test
$ ls -l test
___ih_hl_start
$ mv test sample
___ih_hl_end
$ ls -l
drwxrwxr-x 3 hacker staff 4096  8月 21 12:06 sample
$ ls -l sample
drwxrwxr-x 2 hacker staff 4096  8月 21 11:50 test

ディレクトリ名の変更

移動先パスに別名を指定し、ディレクトリ名を変更できます。

$ ls -l
drwxrwxr-x 2 hacker staff 4096  8月 21 11:50 sample
drwxrwxr-x 2 hacker staff 4096  8月 21 12:06 test
$ ls -l test
___ih_hl_start
$ mv test sample/tmp
___ih_hl_end
$ ls -l
drwxrwxr-x 3 hacker staff 4096  8月 21 12:06 sample
$ ls -l sample
drwxrwxr-x 2 hacker staff 4096  8月 21 11:50 tmp

ディレクトリ名の重複

移動先に同名ディレクトリがある場合、移動先が空の場合は置き換え、空でない場合は移動せずに終了します。

以下サンプルは次のディレクトリ構成です。

.
├── sample
│   ├── testA
│   └── testX
│       └── memoZ.txt
├── testA
│   └── memoA.txt
└── testX
    └── memoX.txt
$ ls -l sample/testA
___ih_hl_start
$ mv testA sample
___ih_hl_end
$ ls -l sample/testA
-rw-rw-r-- 1 hacker staff 13  8月 21 12:16 memoA.txt
$
$ ls -l sample/testX
-rw-rw-r-- 1 hacker staff 6  8月 21 12:17 memoZ.txt
___ih_hl_start
$ mv testX sample
___ih_hl_end
mv: `testX' から `sample/testX' へ移動できません: ディレクトリは空ではありません

マニュアル

コマンドの仕様(主な処理やオプション・引数など)は環境により異なる場合がございます。

利用環境での仕様は『コマンドのマニュアルを表示する』manコマンド等で確認しましょう。